A significant number of packet protocols have been developed and optimized specifically for wired networks. For example, the congestion control used in the Transmission Control Protocol (TCP) has been adapted over time to achieve maximum throughput in fixed bandwidth networks, and to work in a “fair” manner even during heavy network congestion. However, with the move to packet-based networks over a wireless infrastructure, these congestion mechanisms are not always well-suited to the different characteristics found in such a wireless domain, such as:
1. A Longer Latency/Round Trip Time.
The lower bandwidth of the wireless network introduces a considerable amount of latency for a packet. The longer latency is also caused by the nature of the shared network, in which each session waits for the appropriate scheduling to enter the network.
2. Variable Bandwidth.
The bandwidth available to a given mobile or wireless device is a function of many factors. For example, as the user moves, the distance to the antennae moves, which may result in obstructions. Even if the user is stationary there are factors that can impact bandwidth, including vehicles moving between the user and the antennae, other users on the network entering and leaving the shared medium, proximity to other networks, and the associated power/bandwidth management of the radio frequency (RF) signals.
The longer latency and longer round trip time (“RTT”) impacts TCP's ability to quickly ascertain the available bandwidth in a static bandwidth environment. In an environment with a high variable bandwidth, the problem is exacerbated for TCP to efficiently track the available bandwidth.
Variable bandwidth can also indirectly lead to packet drop, which is a significant concern for a wireless network operator. In a situation in which two or more TCP sessions are made aware of available bandwidth in the wireless network, they will increase their data flow speed. This can result in an overloading of the buffers inside the network. Consequently, packets can be dropped off of the tail of the buffer. When there is an excess of packets and some are dropped, retransmission occurs, consuming resources that would otherwise be used to transport new packets.
Further, there are often multiple, simultaneous TCP sessions from multiple sources all destined for a single endpoint. An example would be a user surfing the Internet (which contains multiple sessions in itself) on a mobile device, while downloading an email. With multiple sessions, all independent of each other, the difficulty in ascertaining the available bandwidth across all the sessions is increased. This traffic can be characterized as “bursty” since in the aggregate of all sessions, the instantaneous bandwidth can far exceed or be well below the overall capacity of the wireless network.
The TCP protocol is ubiquitous and has to serve all types of network topologies, including wireless. It is thus highly desirable that any improvements in efficiency must be invisible and applicable to the existing servers that are the source of the TCP sessions, and the clients that are the recipients of the TCP sessions. It is also a requirement that any improvement have no effect on other network traffic and that full Quality of Service (QoS) be maintained.
The goal of increasing the efficiency of wireless networks can be solved by increasing the efficiency of methods for recovery of lost segments in a stream-oriented transport layer protocol, as well as the application of congestion control to multiple sessions between a pair of hosts.
The two fundamental state variables underlying all TCP congestion control techniques are commonly known as the congestion window (cwnd) and the slow-start threshold (ssthresh), which were first described in the article by Jacobson et al. entitled “Congestion Avoidance and Control” (Proceedings of SIGCOMM '88) (1988). In short, the notion of a sliding congestion window limits the amount of data that the sender will transmit, measured from the highest contiguously acknowledged sequence number for a given session (representing the left edge of the sender's window). Whenever cwnd<ssthresh, the sender grows cwnd exponentially upon receiving each acknowledgement that advances the left edge of the window. Beyond ssthresh, the sender enters congestion avoidance, and grows its window according to one of several growth functions, the most basic of which is a linear increase. The modulation of these two variables is at the heart of virtually all TCP congestion control techniques.
In general, every TCP flow makes independent RTT measurements, and maintains its own congestion window and retransmission timer. With the introduction of aggregated session management (“ASM”), however, the one-dimensional congestion window is inadequate.